<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <style>
      /* 填写样式 */
    </style>
  </head>

  <body>
    <!-- 填写标签 -->
    <script type="text/javascript">
      /**
       * 刷题刷题，主打一个每一题都有新收获，而非单纯if else的堆砌，
       * 参数为空或者不是Number类型返回false，倘若为number类型还会为空吗,
       * 小友可能会想到强制类型转换Number(null)，其实不必考虑这个情况，因为Number(null)=0
       * 所以我们只要判断是否是number类型即可
       * 再看后面的内容，只需要分别判断是否可以被3或5整除并加上其标记字符即可，
       * 这里我们按照整除的数字将函数封装在对象中遍历即可，
       * 最后别忘了当为空字符串也就是没有匹配的条件则返回num
       */
      // 填写JavaScript
      function fizzBuzz(num) {
        console.log(num);
        let funs = {
          3: () => (num % 3 === 0 ? "fizz" : ""),
          5: () => (num % 5 === 0 ? "buzz" : ""),
        };

        let solve = () =>
          Object.keys(funs)
            .map((key) => funs[key]())
            .join("") || num;

        return typeof num !== "number" ? false : solve();
      }

      console.log(fizzBuzz(15));
      console.log(fizzBuzz(Number(null))); //相当于输入了0
    </script>
  </body>
</html>
